.. _ceilActionModeOne_Set: ceilActionModeOne_Set ===================== --------------------- SYNOPSIS -------- .. code-block:: none VT_I4 ceilActionModeOne_Set( VT_I4 NodeID, VT_I4 ModuleType, VT_I4 Channel, VT_I4 ActionMode ) DESCRIPTION ----------- - 해당 원격 노드 슬레이브 모듈의 단일 채널에 대해 인터락 동작 모드를 설정합니다. PARAMETER --------- - NodeID : 인터락 동작 모드를 설정할 채널이 속한 원격 노드 ID를 설정합니다. - ModuleType : 인터락 동작 모드를 설정할 대상 모듈 을 선택합니다. +-------------+--------------------------------------------------------------------+ | Value | Meaning | +=============+====================================================================+ | 0 (MOD_CPU) | 마스터 모듈 (ceNM-SE) 을 선택합니다. | +-------------+--------------------------------------------------------------------+ | 1 (MOD_AO) | 슬레이브 모듈 중 아날로그 출력 모듈(ceAO02A) 을 선택합니다. | +-------------+--------------------------------------------------------------------+ | 2 (MOD_DO) | 슬레이브 모듈 중 디지털 출력 모듈(ceD16CM, ceDO32N) 을 선택합니다. | +-------------+--------------------------------------------------------------------+ | 3 (MOD_MOT) | 슬레이브 모듈 중 모션 모듈(ceMC02P)을 선택합니다. | +-------------+--------------------------------------------------------------------+ - Channel : 인터락 동작 모드를 설정할 채널 번호. 통합 채널로 관리되는 채널 번호를 의미하며,. 상수 값으로 0 (Zero Based) 이상, (최대 통합 채널수 - 1) 이하의 값을 채널 번호로 설정할 수 있습니다. - ActionMode : 인터락 동작 모드를 설정합니다. Module_Type 에서 설정한 모듈 종류에 따라. 인터락 동작 모드는 다음과 같이 구분됩니다. +-------------------+-----------------------+---------------------------------------------+ | Slave Module | Value | Meaning | +===================+=======================+=============================================+ || || 0 (CPU_ACT_RESERVED) || Reserved | || || 1 (CPU_ACT_REBOOT) || Reboot | || ceNM-SE || 2 (CPU_ACT_KEEP) || 현재 상태 유지(불변) [Default] | +-------------------+-----------------------+---------------------------------------------+ || || 0 (AO_ACT_MIN) || 최소 전압출력 값(0 V, 0 mA) 출력 [Default] | || ceAO02N || 1 (AO_RESERVED1) || Reserved | || || 2 (AO_ACT_KEEP) || 현재 상태 유지(불변) | +-------------------+-----------------------+---------------------------------------------+ || || 0 (DO_ACT_OFF) || OFF 출력 [Default] | || ceD16CN, ceDO32N || 1 (DO_ACT_ON) || ON 출력 | || || 2 (DO_ACT_KEEP) || 현재 상태 유지(불변) | +-------------------+-----------------------+---------------------------------------------+ || || 0(MOT_ACT_DECELSTOP) || 감속후 정지 [Default] | || ceMC02P || 1 (MOT_ACT_EMGSTOP1) || 즉시 정지 | || || 2 (MOT_ACT_KEEP) || 현재 상태 유지(불변) | +-------------------+-----------------------+---------------------------------------------+ RETURN VALUE ------------ +----------------+-------------------------------------------------------+ | Value | Meaning | +================+=======================================================+ | 음수 | 수행 실패. 자세한 내용은 '에러 처리' 편을 참고합니다. | +----------------+-------------------------------------------------------+ | 0 (ceERR_NONE) | 수행 성공 | +----------------+-------------------------------------------------------+ Example ------- .. code-block:: cpp :linenos: C/C++ #include “ceSDK.h” #include “ceSDKDef.h” #define NODE_ID 1 // 노드 IP 를 192.168.1.1 로 지정 // Module type: ceNM-SE(0), ceAO02N(1), ceDxxN(2), ceMC02P(3) enum {MOD_CPU, MOD_AO, MOD_DO, MOD_MOT}; // CPU (ceNM-SE) : reserved(0), reboot(1), 현재상태유지/불변(2) => reboot(1) 인 경우만 노드 마스터가 재부팅 됨. enum {CPU_ACT_RESERVED, CPU_ACT_REBOOT, CPU_ACT_KEEP}; // Analog Output 모듈의 인터락 Action 정의 : 0: 최소 전압 값(0V, 0 mA)출력, 1: reserved, 2: 현재상태 유지(불변) enum {AO_ACT_MIN, AO_RESERVED, AO_ACT_KEEP}; // Digital Output 모듈의 인터락 Action 정의 : off 출력(0), on 출력(1), 현출력상태 유지(2) enum {DO_ACT_OFF, DO_ACT_ON, DO_ACT_KEEP}; // Motion 모듈의 인터락 Action 정의 : 0: 감속후 정지 (default), 1: 즉시 정지, 2: 현재상태 유지(불변) enum {MOT_ACT_DECELSTOP, MOT_ACT_EMGSTOP, MOT_ACT_KEEP}; VOID CInterlockTestDlg::OnBtnActModeSetOne { long val; // 1. CPU 모듈 리셋 설정 // Module Type => 0: ceNM-SE(CPU 모듈) // Channel => CPU 모듈인 경우 임의값, don't care // Action Mode => 1 이외의 값은 Reboot 하지 않음, 1: 재부팅 long nResult = ceilActionModeOne_Set(NODE_ID, MOD_CPU, 0, CPU_ACT_REBOOT); // 2. CPU 모듈 리셋 설정 확인 nResult = ceilActionModeOne_Get(NODE_ID, MOD_CPU, 0, &val); // 3. AO 모듈 단일 채널의 인터락 동작 설정 // Module Type => 1: 아날로그출력모듈 // Channel => 0 번 // Action Mode => AO_ACT_MIN : 최소값 출력 (0V, 0mA) nResult = ceilActionModeOne_Set(NODE_ID, MOD_AO, 0, AO_ACT_MIN); // 4. AO 모듈 단일 채널의 인터락 동작 설정 확인 nResult = ceilActionModeOne_Get(NODE_ID, MOD_AO, 0, &val); // 5. DO 모듈 단일 채널의 인터락 동작 설정 // Module Type => 2: 디지털출력모듈 // Channel => 0 번 // Action Mode => DO_ACT_OFF : 출력 OFF nResult = ceilActionModeOne_Set(NODE_ID, MOD_DO, 0, DO_ACT_OFF); // 6. DO 모듈 단일 채널의 인터락 동작 설정 확인 nResult = ceilActionModeOne_Get(NODE_ID, MOD_DO, 0, &val); // 7. MOTION 모듈 단일 채널의 인터락 동작 설정 // Module Type => 3: 모션 모듈 // Channel => 0 번 축 // Action Mode => MOT_ACT_EMGSTOP : 비상 정지 (Emergency Stop) nResult = ceilActionModeOne_Set(NODE_ID, MOD_MOT, 0, MOT_ACT_EMGSTOP); // 8. MOTION 모듈 단일 채널의 인터락 동작 설정 확인 nResult = ceilActionModeOne_Get(NODE_ID, MOD_MOT, 0, &val); }